package application;
/**
 * Project Statistics and Characteristics for a specific project 
 * according to the COCOMO II model.
 * 
 * TODO: Implement logical methods if any
 * TODO: Implement Comparable
 * TODO: Implement toString
 * 
 */
public class ProjectStatistics{

	/** Analysts capability */
	private EffortMult acap;
	
	/** Actual effort */
	private double actualEffort;
	
	/** Application experience */
	private EffortMult aexp;
	
	/** Process complexity */
	private EffortMult cplx;
	
	/** Data base size */
	private EffortMult data;
	
	/** Kilo lines of code */
	private double ksloc;
	
	/** Language Experience */
	private EffortMult lexp;
	
	/** Modern programming practices */
	private EffortMult modp;
	
	/** Programmers capability */
	private EffortMult pcap;
	
	/** Required software reliability */
	private EffortMult rely;
	
	/** Schedule constraint */
	private EffortMult sced;
	
	/** Main memory constraint */
	private EffortMult stor;
	
	/** Time constraint for cpu */
	private EffortMult time;
	
	/** Use of software tools */
	private EffortMult tool;
	
	/** Turnaround time */
	private EffortMult turn;
	
	/** Virtual machine experience */
	private EffortMult vexp; 
	
	/** Machine volatility */
	private EffortMult virt;
	
	public ProjectStatistics(EffortMult em, EffortMult em2, EffortMult em3, 
			EffortMult em4, EffortMult em5, EffortMult em6, EffortMult em7, EffortMult em8, 
			EffortMult em9, EffortMult em10, EffortMult em11, EffortMult em12, EffortMult em13, 
			EffortMult em14, EffortMult em15, double ksloc, double actualEffort){
		
		this.rely = em;
		this.data = em2;
		this.cplx = em3;
		this.time = em4;
		this.stor = em5;
		this.virt = em6;
		this.turn = em7;
		this.acap = em8;
		this.aexp = em9;
		this.pcap = em10;
		this.vexp = em11;
		this.lexp = em12;
		this.modp = em13;
		this.tool = em14;
		this.sced = em15;
		this.ksloc = ksloc;
		this.actualEffort = actualEffort;		
	}
	
	/**
	 * @return the acap
	 */
	public EffortMult getAcap() {
		return acap;
	}

	/**
	 * @return the actualEffort
	 */
	public double getActualEffort() {
		return actualEffort;
	}

	/**
	 * @return the aexp
	 */
	public EffortMult getAexp() {
		return aexp;
	}

	/**
	 * @return the cplx
	 */
	public EffortMult getCplx() {
		return cplx;
	}

	/**
	 * @return the data
	 */
	public EffortMult getData() {
		return data;
	}

	/**
	 * @return the ksloc
	 */
	public double getKsloc() {
		return ksloc;
	}

	/**
	 * @return the lexp
	 */
	public EffortMult getLexp() {
		return lexp;
	}

	/**
	 * @return the modp
	 */
	public EffortMult getModp() {
		return modp;
	}

	/**
	 * @return the pcap
	 */
	public EffortMult getPcap() {
		return pcap;
	}

	/**
	 * @return the rely
	 */
	public EffortMult getRely() {
		return rely;
	}

	/**
	 * @return the sced
	 */
	public EffortMult getSced() {
		return sced;
	}

	/**
	 * @return the stor
	 */
	public EffortMult getStor() {
		return stor;
	}

	/**
	 * @return the time
	 */
	public EffortMult getTime() {
		return time;
	}

	/**
	 * @return the tool
	 */
	public EffortMult getTool() {
		return tool;
	}

	/**
	 * @return the turn
	 */
	public EffortMult getTurn() {
		return turn;
	}

	/**
	 * @return the vexp
	 */
	public EffortMult getVexp() {
		return vexp;
	}

	/**
	 * @return the virt
	 */
	public EffortMult getVirt() {
		return virt;
	}
	
	public String toString(){
		return "";
	}
}
